10 GOSUB910:CLR:POKE53280,12:POKE53281,1 20 PRINTCHR$(142)"[147][144]"SPC(12)"KLONDIKE SOLITAIRE" 30 PRINTSPC(11)"SHUFFLING THE DECK..." 40 POKE56334,PEEK(56334)AND254:POKE1,PEEK(1)AND251:B=12288 50 C=53248:FORI=0TO2047:POKEI+B,PEEK(I+C):NEXT:POKE1,PEEK(1)OR4 60 POKE56334,PEEK(56334)OR1 70 POKE53272,(PEEK(53272)AND240)+12 80 DIM C$(52),D(7,25),P(7),NU(7),U(52),B(27),DK(27),CK(52,2) 90 DATA A,2,3,4,5,6,7,8,9,@,J,Q,"K" : B$=" [157][157][157][157] [157][157][157][157] [157][157][157][157]" 100 N$="" : Q$(1)="[144] [193]":Q$(2)=" [211]":Q$(3)=" [218]":Q$(4)="[144] [216]" 110 FORI=1TO12:FORJ=1TO2:CK(I,J)=14*J+I+(J=2):NEXT:NEXT 120 FORI=14TO25:FORJ=0TO1:CK(I,J+1)=39*J+I-12:NEXT:NEXT 130 FORI=27TO38:FORJ=0TO1:CK(I,J+1)=39*J+I-25:NEXT:NEXT:CK(0,0)=-1 140 CK(0,1)=-1:FORI=40TO51:FORJ=1TO2:CK(I,J)=14*J+I+(J=2)-39:NEXT:NEXT 150 FORI=1TO4:RESTORE:FORJ=1TO13:READC$ 160 C$((I-1)*13+J)="[207][183][183][208][157][157][157][157][165]"+Q$(I)+"[157][157]"+C$+"[144][167][157][157][157][157][204][175][175][186][157][157][157][157]":NEXT:NEXT 170 FORI=0TO7:READA:POKEB+I,A:NEXT:DATA 158,146,146,146,146,146,158,0 180 FORI=1TO52:U(I)=0:NEXT:FORI=1TO27:B(I)=0:DK(I)=0:NEXT:DP=0:PRINT"[147]" 190 FORI=1TO7:P(I)=I:FORJ=1TOI 200 X=INT(RND(0)*52)+1:IFU(X)THEN200 210 U(X)=-1:D(I,J)=X 220 NEXT:NU(I)=I-1:NEXT:FORI=1TO4:NF(I)=0:NEXT 230 X=INT(RND(0)*52)+1:IFU(X)THEN230 240 U(X)=-1 : DK(DP+1)=X : DP=DP+1 : IF DP<24 THEN GOTO230 250 C$(0)=B$:ND=24 260 PRINT"[147] KLONDIKE SOLITAIRE" 270 PRINT"SPADES HEARTS DIAMONDS CLUBS BONE"; 280 FORI=1TO4:IFNF(I)=0THENPRINTSPC(9);:GOTO300 290 PRINTC$(13*(I-1)+NF(I))"[145][145][145] "; 300 NEXT:PRINTC$(B(1)) 310 PRINT" 1 ";:FORI=2TO7:PRINT" "I;:NEXT:PRINT"[145]" 320 PRINTSPC(6);:FORI=2TO7 330 IFNU(I)THENPRINT" "CHR$(NU(I)+48)" [146][144]";:GOTO350 340 PRINT SPC(4); 350 IFI<7THENPRINT" "; 360 NEXT 370 FORI=1TO7:NP=0:B=NU(I):IFP(I)=0THENPRINT"";:GOTO420 380 IFP(I)-B>5THENB=P(I)-4:PRINTC$(D(I,NU(I)+1))"[145]";:NP=1 390 FORJ=B+1TOP(I):PRINTC$(D(I,J))"[145]";:NEXT:PRINT"";:NP=NP+P(I)-B 400 IFNP>1THENFORK=2TONP:PRINT"[145][145]";:NEXT 410 IFI<7THENPRINT"[145][145][145] "; 420 NEXT 430 PRINT"NUMBER OF CARDS IN DECK:"ND"[144]" 440 U=0:FORI=1TO4:U=U+NF(I):NEXT:IFU<52THEN460 450 PRINT""SPC(40)" YOU HAVE WON !!":FORT=1TO2000:NEXT:NW=-1:RUN20 460 IFDK(1)>0ORB(1)>0THEN490 470 U=0:FORI=1TO7:U=U+NU(I):NEXT:IFU>0THEN490 480 PRINT" YOUR VICTORY IS INEVITABLE!!" 490 W$="":PRINT"[144][146]PLAY: 1-7, B)ONE D)RAW Q)UIT N)EW ->"; 500 POKE198,0:WAIT198,1:GETW$:W=VAL(W$):IF W>0 AND W<8 THENPRINTW$:GOTO580 510 NW=0:IFW$="N"THENW$="Q":NW=1 515 IFW$<>"B"ANDW$<>"D"ANDW$<>"Q"THEN500 517 PRINTW$ 520 ON -(W$="B")-2*(W$="D")-3*(W$="Q")+1 GOTO490,530,690,760 530 GOSUB810:Q=B(1):IFW$<>""THEN560 540 IFC1=CK(Q,1)ORC1=CK(Q,2)THENP(L)=P(L)+1:D(L,P(L))=B(1):GOTO860 550 GOTO870 560 IF B(1)-1 = 13*(S-1)+NF(S) THEN NF(S)=NF(S)+1 : GOTO860 570 GOTO870 580 W=VAL(W$):IFP(W)=0THEN870 590 W=VAL(W$):GOSUB810:Q=D(W,P(W)):IFW$<>""OR(W=L)THEN650 600 FORI=P(W)TONU(W)+1STEP-1:B=D(W,I):IFCK(B,1)<>C1ANDCK(B,2)<>C1THEN640 610 FORJ=ITO P(W):D(L,P(L)+J-I+1)=D(W,J):NEXT 620 P(L)=P(L)+P(W)-I+1:P(W)=I-1:P(W)=-(P(W)>=0)*P(W):P(L)=-(P(L)>=0)*P(L) 630 GOTO670 640 NEXT : GOTO870 650 IFQ-1<>13*(S-1)+NF(S)THEN870 660 NF(S)=NF(S)+1:P(W)=P(W)-1 670 IFP(W)=NU(W)ANDNU(W)>0THENNU(W)=NU(W)-1 680 GOTO260 690 IF ND>0 THEN720 700 FORX=1TO24:IFB(X)<>0THENNEXT 710 FORI=1TOX-1:DK(I)=B(X-I):B(X-I)=0:NEXT:ND=X-1 720 FOR P=24TO4STEP-1:B(P)=B(P-3):NEXT:FORI=1TO3:B(I)=DK(4-I):NEXT 730 ND=ND-3:FOR P=1TO24:DK(P)=DK(P+3):NEXT:IFND<>ABS(ND)THENND=. 740 IF B(3)>0 THEN G=2: IF B(2)>0 THEN G=1: IF B(1)>0 THEN260 750 FORI=1TO27-G:B(I)=B(I+G):NEXT:GOTO260 760 PRINT:PRINT"ARE YOU SURE (Y/N)?";:WAIT198,1:GETOK$:PRINTOK$:IFOK$<>"Y"THEN260 770 IFNWTHENRUN20 780 OPEN15,8,15,"R0:HELLO CONNECT=HELLO CONNECT":INPUT#15,ER:CLOSE15 790 PRINT"[147]";:IFER<>63THENEND 800 POKE53272,21:LOAD"HELLO CONNECT",8 810 PRINT"WHERE TO: COLUMN 1-7, S,H,D,C [157][157]>";:GETW$:PRINTW$ 820 L=VAL(W$) : IF L>0 AND L<8 THEN C1=D(L,P(L)) : W$="" : RETURN 830 S=-(W$="S")-2*(W$="H")-3*(W$="D")-4*(W$="C") 840 IF S=0 THENPRINT"[145]";:GOTO810 850 RETURN 860 FOR P=1TO26:B(P)=B(P+1):NEXT:GOTO260 870 PRINT"YOU TRYING TO CHEAT, PODNER?": 880 POKE54276,.:POKE54296,15:POKE54273,24:POKE54272,75:POKE54277,28:POKE54278,10 890 POKE54276,33 900 FORM=1TO2500:NEXT:POKE198,0:GOTO260 910 PN$="[203][204][207][206][196][201][203][197] [211][207][204][201][212][193][201][210][197]":AN$="[194][217]: [202][193][201][205] [193][206][196][210][197][215] [194][193][201][204][197][217]" 920 BO=11:SC=1:CL=06:C1=12:C2=00:C3=12:C4=00:C5=00:C6=06:C7=011 930 POKE53272,21 940 POKE53280,BO:POKE53281,SC:PRINT"[147]";:GOTO1060 950 POKE646,C1:PRINT" [164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]" 960 POKE646,C2:PRINT" [165] [204][207][193][196][211][212][193][210] [208][210][197][211][197][206][212][211]: [167]" 970 POKE646,C1:PRINT" [163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]" 980 POKE646,C6:PRINT""TAB(20-LEN(PN$)/2);PN$ 990 POKE646,C7:PRINT""TAB(20-LEN(AN$)/2);AN$ 1000 POKE646,C5:PRINT""TAB(13)"[195][207][208][217][210][201][199][200][212] 1986" 1010 PRINTTAB(9)"[195][207][205][205][207][196][207][210][197] [208][213][194][204][201][195][193][212][201][207][206][211]" 1020 POKE646,C3:PRINT" [164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]" 1030 POKE646,C4:PRINT" [165] [167]" 1040 POKE646,C3:PRINT" [163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][146]"; 1050 POKE198,.:GOTO1150 1060 POKE646,CL 1070 PRINT" [172][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187]" 1080 FORA=1TO3:GOSUB1260:NEXT 1090 GOSUB1260:PRINT"[145][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183]" 1100 FORA=1TO16:GOSUB1260:NEXT 1110 PRINT"[145][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175]" 1120 FORA=1TO3:GOSUB1260:NEXT 1130 PRINT" [188][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][146][190]"; 1140 POKE53280,BO:POKE53281,SC:GOTO950 1150 PRINT""; 1160 POKE646,C2:PRINT"[165][208]RESS THE [[211][208][193][195][197] [194][193][210]] TO CONTINUE.[167]" 1170 FORA=1TO100 1180 GETA$:IFA$=" "ORA$="[160]"THENRETURN 1190 NEXT 1200 PRINT""; 1210 PRINT"[165] [167]" 1220 FORA=1TO100 1230 GETA$:IFA$=" "ORA$="[160]"THENRETURN 1240 NEXT 1250 GOTO1150 1260 PRINT" [161][146][161]":RETURN